/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package daos.classes;

import daos.interfaces.ProductoDAO;
import beans.Producto;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author curso
 */
public class ProductoDAOImp extends DAOGenerico implements ProductoDAO{
    
    @Override
    public int insertar(Producto p) throws SQLException {
        PreparedStatement ps=conexion.prepareStatement("INSERT INTO Producto (nombre,precio,id_categoria)VALUES(?,?,?)");
        ps.setString(1,p.getNombre());
        ps.setFloat(2,p.getPrecio());
        ps.setInt(3,p.getId_categoria());
        return ps.executeUpdate();
    }

    @Override
    public List<Producto> verProductos() throws SQLException {
        PreparedStatement ps=conexion.prepareStatement("SELECT *FROM producto ");
        ResultSet rs=ps.executeQuery();
        List<Producto> lista=new ArrayList<Producto>();
        while(rs.next()){
            Producto p=new Producto();
            p.setId_producto(rs.getInt(1));
            p.setNombre(rs.getString(2));
            p.setPrecio(rs.getFloat(3));
            p.setId_categoria(rs.getInt(4));
            lista.add(p);
        }
        return lista;
        
    }
    
        @Override
      public List<Producto> verProductos(int id_categoria) throws SQLException {
        PreparedStatement ps=conexion.prepareStatement("SELECT * FROM producto WHERE id_categoria = ? ");
        ps.setInt(1,id_categoria);
        ResultSet rs=ps.executeQuery();
        
        List<Producto> lista=new ArrayList<Producto>();
        while(rs.next()){
            Producto p=new Producto();
            p.setId_producto(rs.getInt(1));
            p.setNombre(rs.getString(2));
            p.setPrecio(rs.getFloat(3));
            p.setId_categoria(rs.getInt(4));
            lista.add(p);
        }
        return lista;
        
    }
    
    @Override
    public int borrar(int id) throws SQLException {
     PreparedStatement ps=conexion.prepareStatement("DELETE FROM producto WHERE id_producto=?");
     ps.setInt(1, id);
     return ps.executeUpdate();
    }

    @Override
    public int actualizar(Producto p) throws SQLException {
       PreparedStatement ps=conexion.prepareStatement("UPDATE producto SET  nombre=?, precio=?, id_categoria=? WHERE id_producto=?");
       ps.setString(1, p.getNombre());
       ps.setFloat(2, p.getPrecio());
       ps.setInt(3, p.getId_categoria());
       ps.setInt(4, p.getId_producto());
       return ps.executeUpdate();
    }

   
   
}
